A Static Analysis to Detect Coupling and Conflicts in Declarative Specifications
نویسندگان
چکیده
Alloy is a declarative specification language especially designed for object modelling. Using Alcoa, an automatic design checking tool, models in Alloy can be automatically analyzed to yield simulations or to find bugs. Models in Alloy consist of a number of separate paragraphs representing conditions or operations to be simulated, or claims to be verified. When a given paragraph in an Alloy model is analyzed, all the model's stated invariants and constraints on state elements are implicitly conjoined with the paragraph's formula. This sometimes results in the inclusion of extraneous and unnecessary invariants in analyses. This thesis presents polarity analysis, a static analysis of Alloy that can be used to accurately determine which invariants and state elements a given Alloy formula is dependent on, and prevent the inclusion of unnecessary invariants in analyses of Alloy models. Polarity analysis is further presented as the basis of a simplification algorithm that dramatically simplifies Alloy formulas, facilitating their analysis. The design, correctness, and implementation of this analysis are presented, along with the results of applying it to a number of various specifications. Thesis Supervisor: Daniel Jackson Title: Associate Professor
منابع مشابه
Semantics Guided Filtering of Combinatorial Graph Transformations in Declarative Equation-Based Languages
This paper concerns the use of static analysis for debugging purposes of declarative object-oriented equation-based modeling languages. We propose a framework where overand under-constraining situations present in simulation models specified in such languages are detected by combinatorial graph transformations performed on the flattened intermediate code and filtered by the semantic transformat...
متن کاملAccess Control Policy Analysis Using Free Variable Tableaux
The specification of access control policies for large, multi-organization applications is difficult and error-prone. Sophisticated policies are needed for fine-grained control of access to large numbers of entities, resulting in many policies specified by different security administrators. Techniques such as role based access control (RBAC) have been proposed to group policies and provide a fr...
متن کاملPointer Analysis
Pointer analysis is a fundamental static program analysis, with a rich literature and wide applications. The goal of pointer analysis is to compute an approximation of the set of program objects that a pointer variable or expression can refer to. We present an introduction and survey of pointer analysis techniques, with an emphasis on distilling the essence of common analysis algorithms. To thi...
متن کاملFoundations and Trends Pointer Analysis
Pointer analysis is a fundamental static program analysis, with a rich literature and wide applications. The goal of pointer analysis is to compute an approximation of the set of program objects that a pointer variable or expression can refer to. We present an introduction and survey of pointer analysis techniques, with an emphasis on distilling the essence of common analysis algorithms. To thi...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کامل